package co.yixiang.yshop.module.tables.controller.admin.reservation.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;

import com.alibaba.excel.annotation.ExcelProperty;
import co.yixiang.yshop.framework.excel.core.annotations.DictFormat;
import co.yixiang.yshop.framework.excel.core.convert.DictConvert;


/**
 * 预约记录 Excel VO
 *
 * @author yshop
 */
@Data
public class ReservationExcelVO {

    @ExcelProperty("预约记录唯一标识符")
    private Integer id;

    @ExcelProperty("预约的餐桌ID")
    private Integer tableId;

    @ExcelProperty("预约人姓名")
    private String customerName;

    @ExcelProperty("预约人联系电话")
    private String contactNumber;

    @ExcelProperty("预约时间")
    private LocalDateTime reservationTime;

    @ExcelProperty("用餐人数")
    private Short numberOfGuests;

    @ExcelProperty(value = "预约状态（1:已确认, 2:已取消, 3:待确认）", converter = DictConvert.class)
    @DictFormat("reservations_reservation_status") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Byte reservationStatus;

    @ExcelProperty(value = "支付状态（1:已支付, 2:未支付, 3:部分支付）", converter = DictConvert.class)
    @DictFormat("reservations_payment_status") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Byte paymentStatus;

    @ExcelProperty("预约备注信息（如特殊要求、优惠券使用等）")
    private String notes;

    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}
